//辅助静态页面使用的Js
var jv={};


Object.defineProperty(Object.prototype, "Type", {
    get() {
        var ret = this.constructor.name || typeof (this);
        //把第一个非大写字母前面的全部变成小写字母。
        //不宜使用 this.prototype.constructor.name

        if (ret) {
            var index = 0;
            for (var it of ret) {
                var code = it.charCodeAt();
                if (code >= 65 && code <= 90) {
                    index++;
                } else {
                    break;
                }
            }

            if (index) {
                if (index > 1) {
                    index--;
                }
                ret = ret.slice(0, index).toLocaleLowerCase() + ret.slice(index);
            }
        }
        return ret;
    }, enumerable: false
});
Object.defineProperty(Array.prototype, "last", {
    value(filter) {
        if (!this.length) return null;
        if (!filter) {
            filter = () => true
        }

        for (var i = this.length - 1; i > -1; i--) {
            var item = this[i];
            if (filter(item, i)) return item;
        }
        return null;
    }, enumerable: false
});

/**
 * 如果 query 里有 ？，则截断，取问号后面的部分。
 * @param query
 * @returns {{}}
 */
jv.query2Json = (query) => {
    let ret = {};
    if (!query) return ret;
    query.split("?").last().split("&").forEach((it) => {
        var sects = it.split("=");
        if (sects.length == 2) {
            var key = sects[0];
            var value = decodeURIComponent(sects[1]);
            if (key in ret) {
                var oriValue = ret[key];
                if (oriValue.Type == "array") {
                    oriValue.push(value);
                } else {
                    oriValue = [oriValue];
                    oriValue.push(value);
                }
                ret[key] = oriValue;
            } else {
                ret[key] = value;
            }
        }
    });
    return ret;
};
